A Framework for Reverse Engineering Large C++ Code Bases
نویسندگان
چکیده
When assessing the quality and maintainability of large C++ code bases, tools are needed for extracting several facts from the source code, such as: architecture, structure, code smells, and quality metrics. Moreover, these facts should be presented in such ways so that one can correlate them and find outliers and anomalies. We present SolidFX, an integrated reverse-engineering environment (IRE) for C and C++. SolidFX was specifically designed to support code parsing, fact extraction, metric computation, and interactive visual analysis of the results in much the same way IDEs and design tools offer for the forward engineering pipeline. In the design of SolidFX, we adapted and extended several existing code analysis and data visualization techniques to render them scalable for handling code bases of millions of lines. In this paper, we detail several design decisions taken to construct SolidFX. We also illustrate the application of our tool and our lessons learnt in using it in several types of analyses of real-world industrial code bases, including maintainability and modularity assessments, detection of coding patterns, and complexity analyses.
منابع مشابه
Architecting an open system for querying large C and C++ code bases
Static code analysis offers a number of tools for the assessment of complexity, maintainability, modularity and safety of industry-size source code bases. Typically, such scenarios include three main phases. First, the code is parsed and ’raw’ data is extracted and saved, such as syntax trees, possibly annotated with semantic (type) information. In the second phase, the raw data is queried to c...
متن کاملSoftware Visualisation using C++ Lenses
Program comprehension is one of the most frequent and essential, yet difficult and costly, software engineering activities to undertake. It is required each time a program is corrected, reused, migrated, reengineered, inspected or enhanced. The complexities of comprehension may be attributable to a number of factors such as the complexity and size of the code base, tightly coupled interfaces, p...
متن کاملText Mining Through Semi Automatic Semantic Annotation
The Web is the greatest information source in human history. Unfortunately, mining knowledge out of this source is a laborious and errorprone task. Many researchers believe that a solution to the problem can be founded on semantic annotations that need to be inserted in web-based documents and guide information extraction and knowledge mining. In this paper, we further elaborate a tool-supporte...
متن کاملCalculating Metrics from Large C++ Programs
In this work we present a new method called compiler wrapping for extracting information from the source code of large software systems written in the C++ language. This new method can be used without having to modify the analyzed source code in any way. With the extracted information we can calculate different object oriented metrics and characterize the analyzed system. For source code analys...
متن کاملSoftware Visualisation using C++ Lenses
C++ Lens is an innovative visualisation technique and associated tool, that assists maintainers comprehend C++ source code. The primary role of the C++ Lens technique and tool is to visualise the interface relationships existing between C++ classes and to signify the relative importance of these relationships. The technique innovatively combines, via the definition of lenses, elements of revers...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Electr. Notes Theor. Comput. Sci.
دوره 233 شماره
صفحات -
تاریخ انتشار 2009